
export interface OAuthStateInterface {
  // 用户头像
  icon: string
  // 用户名
  name: string
  // 用户类型 0： QQ
  type: number
  // 用户ID
  userId: string
}

/**
 * 登录
 */
export const OAUTH_LOGIN_TYPE = 'OAUTH_LOGIN_TYPE'
export interface LoginDispatch {
  type: typeof OAUTH_LOGIN_TYPE,
  value: {
    user: string,
    icon: string,
    pages: Array<any>
  }
}

/**
 * SESSION 登录
 */
export const OAUTH_SESSION_LOGOUT_TYPE = 'OAUTH_SESSION_LOGOUT_TYPE'
export interface SessionLogin {
  type: typeof OAUTH_SESSION_LOGOUT_TYPE
  value: any
}

/**
 * 退出登录
 */
export const OAUTH_LOGOUT_TYPE = 'OAUTH_LOGOUT_TYPE'
export interface Logout {
  type: typeof OAUTH_LOGOUT_TYPE
}

/**
 * OAuth QQ 获取用户数据
 */
export const OAUTH_QQ_USER_INFO_TYPE = 'OAUTH_QQ_USER_INFO_TYPE'
export interface OAuthQQUserInfo {
  type: typeof OAUTH_QQ_USER_INFO_TYPE
  value: OAuthStateInterface
}

export type AuthActionTypes = LoginDispatch | Logout | OAuthQQUserInfo | SessionLogin